![]() |
![]() |
![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
To access the contents, click the chapter and section titles.
Oracle Performance Tuning and Optimization
Array Controller Caches Many disk arrays on the market today offer a large controller cache. This cache can help in several ways:
Write Caches Write caches are designed to cache the writes written to the controller and to post the I/O request to the disk driver. Posting the request means that the device driver believes that the I/O is completed. Posting the write allows the overhead associated with queuing the request and writing it to the individual disk to be masked. All the OS and the RDBMS see is an incredibly fast write.
Some disk array controllers like the Compaq SMART array have incorporated both mirroring and a battery backup into the write cache to ensure that the data is protected even in the event of a power outage. Use your own judgment about running a write cache on the redo log volumes. Read/Write Caches Controller read/write caches are similar to write caches (described in the preceding section) with the exception that during a read, the controller checks the cache first. If the data is in the cache, the data is returned immediately; if not, the request goes to disk. Although reading from cache may help in some situations, it is usually not a great advantage in an RDBMS environment because you already have an enormous read cache: the database block buffers. The chance is very small that an I/O written to the disk controller is in the read cache on that controller but is not in the SGA. Because you already have a highly optimized cache (SGA) in an RDBMS, it is unlikely that there will be a request to read data that has just been written. The chances are small that this data is in the disk cache but not in the SGA. However, you will reap the benefits of the write cache if you use fault-tolerant functions. The controller can mask the effects of extra I/Os that may be involved in your fault tolerant method. RAID TechnologyThe configuration of disks in an array is sometimes called a Redundant Array of Inexpensive Disks (RAID) configuration. RAID technology has allowed systems to maintain very large amounts of storage at relatively low cost. SCSI drives have not only improved in performance and quality over the years, they have significantly dropped in price. The term RAID is also used to describe the type of striping you use. Striping methods vary in both performance and space overhead. The type of configuration used in your system depends on your individual needs. Different configurations of striping and fault-tolerant striping are identified by RAID levels. Although you may see various RAID levels advertised by hardware manufacturers, there are really standards for only RAID levels 0 through 5 at this time. And because these standards are based on general concepts and are implementation specific, different implementations of RAID-5 (for example) may use different algorithms. The six RAID levels are described next. RAID-0RAID-0 is the base RAID level and is used to describe disk striping with no fault tolerance. RAID-0 drives simply have data striped over all the drives (see Figure 15.2).
RAID-0 is the highest performing and most economical of the RAID levels. The amount of data in the logical volume is equal to the sum of the amount of data on each disk drive. RAID level 0 causes no additional I/Os to be generated on behalf of the fault tolerant method. The downside of RAID-0 is that if a disk were to fail, the entire volume becomes invalid. Because the data in the logical volume is striped across all the disks, a loss of a single disk causes a loss of data throughout the logical volume. If a 14-disk volume were to fail, you must restore the data for all 14 disk drives. There is no way to back up and restore data for a single drive in a disk array. If you are looking for the highest performance and the best value possibleand are not worried about fault tolerancethis is the RAID level you should use. RAID-1The RAID-1 level is also known as disk mirroring. In RAID-1, all the data stored on a disk drive is duplicated on another disk in the array. Each time a write occurs to the logical disk, the data must be written to both physical disks before the logical write is considered completed. With disk mirroring, a single disk is mirrored to another disk; these disks can also be striped with other disks to form a larger logical volume (see Figure 15.3).
Because the mirroring is on a one-to-one basis, you can actually lose half the disks in your system (depending on which disks they are) and still be operational. With most disk array controllers, you can split the mirror across SCSI busses. This arrangement allows for the failure of an entire SCSI bus (for example, a cabinet failure) without affecting operation. With disk mirroring, you can use only half the disks in the system (the other half are used for the mirrors). In other words, if you use disk mirroring with two 2.1 gigabyte disks, you can use only 2.1 gigabytes of space. When writing, you get the benefit of only one disk in terms of performance because a logical write invokes two physical writes. You may see a benefit from reading from a mirrored drive. Some disk array controllers support split-reads, in which reads can occur simultaneously on different mirrored drives to different data. The disk with the heads closest to the requested data retrieves the data. Depending on the data access methods, this feature may or may not provide any benefits. If you can afford the cost of disk mirroring, RAID-1 is the best choice when fault tolerance is required. With disk mirroring, you achieve the highest level of protection as well as the fastest disk access possible for a fault-tolerant volume.
|
![]() |
Products | Contact Us | About Us | Privacy | Ad Info | Home
Use of this site is subject to certain Terms & Conditions, Copyright © 1996-2000 EarthWeb Inc. All rights reserved. Reproduction whole or in part in any form or medium without express written permission of EarthWeb is prohibited. |